package com.jcdd.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jcdd.object.db.GoodsDetail;
import com.jcdd.object.front.HomeFirstGoodsFO;
import com.jcdd.object.front.HomeGoodsDetailFO;
import com.jcdd.object.front.HomeGoodsFO;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface GoodsDetailMapper extends BaseMapper<GoodsDetail> {

    //获取最新的商品
    List<HomeFirstGoodsFO> selectFirstByRegion(int region, int offset, int pageSize);

    //推荐：最新的商品
    //这个推荐的算法就是，先找vip字段最大的几个，比如有10，11，13和大多数默认的0，那就先展示13，11，10，
    // 剩下的还有7个位置（pageSize比如为10）那就按发布时间，发布时间最新的就往上面展示，
    // 我自己会控制，VIP不会超过5个，等于说一定会至少有5个非vip用户（vip字段为0）排在后面，
    // 这里的代码实现就是在上面的基础上：order by vip desc，再order by 时间 desc
    List<HomeFirstGoodsFO> selectVipByRegion(int region, int offset, int pageSize);



    //按观看次数来排
    // 这里的代码实现就是在上面的基础上：order by view_count desc，再order by 时间 desc
    List<HomeFirstGoodsFO> selectPopularityByRegion(int region, int offset, int pageSize);


    HomeGoodsDetailFO getGoodsDetailById(long id);

    List<HomeFirstGoodsFO> searchByRegion(int region, int offset, int pageSize, String content);

    List<HomeFirstGoodsFO> getUserGoods(long userId);

    @Delete("update  goods_detail set private=1 where id=#{goodsId} and seller_id=#{userId}")
    boolean delGoods(long userId, String goodsId);
}
